-
Notifications
You must be signed in to change notification settings - Fork 112
Lapack geqrf #2858
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: develop
Are you sure you want to change the base?
Lapack geqrf #2858
Conversation
jgfouca
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good. Just a few minor things.
The wrappers will allow use of LAPACK, cusolver, rocsolver and magma Signed-off-by: Luc-Berger Vergiat <[email protected]>
Signed-off-by: Luc Berger-Vergiat <[email protected]>
Signed-off-by: Luc Berger-Vergiat <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This pull request adds a new interface for the LAPACK geqrf function (QR factorization) to KokkosKernels, taking over from PR #2205. The implementation provides TPL wrappers for LAPACK (host), CUSOLVER (CUDA), and ROCSOLVER (HIP), with comprehensive unit tests and documentation.
Changes:
- Added
KokkosLapack::geqrfinterface for QR factorization with support for multiple backends (LAPACK, CUSOLVER, ROCSOLVER) - Implemented TPL wrappers for host LAPACK, CUDA CUSOLVER, and HIP ROCSOLVER
- Added comprehensive unit tests covering various matrix sizes, data types (float, double, complex), and validation of Q, R matrices
Reviewed changes
Copilot reviewed 16 out of 16 changed files in this pull request and generated 13 comments.
Show a summary per file
| File | Description |
|---|---|
| lapack/src/KokkosLapack_geqrf.hpp | Main public interface for geqrf with parameter validation |
| lapack/impl/KokkosLapack_geqrf_spec.hpp | Template specialization declarations with ETI support |
| lapack/impl/KokkosLapack_geqrf_impl.hpp | Implementation file (placeholder for future native implementation) |
| lapack/tpls/KokkosLapack_geqrf_tpl_spec_decl.hpp | TPL wrapper implementations for LAPACK, CUSOLVER, ROCSOLVER |
| lapack/tpls/KokkosLapack_geqrf_tpl_spec_avail.hpp | TPL availability declarations |
| lapack/tpls/KokkosLapack_Host_tpl.hpp | Added geqrf function declaration to HostLapack template |
| lapack/tpls/KokkosLapack_Host_tpl.cpp | Implemented LAPACK geqrf wrappers for float, double, complex types |
| lapack/unit_test/Test_Lapack_geqrf.hpp | Comprehensive unit tests validating QR factorization correctness |
| lapack/unit_test/Test_Lapack.hpp | Added include for geqrf tests |
| lapack/CMakeLists.txt | Added ETI generation for geqrf |
| lapack/eti/generated_specializations_hpp/KokkosLapack_geqrf_eti_spec_*.hpp.in | ETI template files |
| lapack/eti/generated_specializations_cpp/geqrf/KokkosLapack_geqrf_eti_spec_inst.cpp.in | ETI instantiation template |
| docs/source/API/lapack/geqrf.rst | API documentation for geqrf function |
| docs/source/API/lapack-index.rst | Added geqrf to documentation index |
| scripts/check_api_updates.py | Added geqrf to API checker |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
lapack/eti/generated_specializations_hpp/KokkosLapack_geqrf_eti_spec_decl.hpp.in
Outdated
Show resolved
Hide resolved
lapack/eti/generated_specializations_hpp/KokkosLapack_geqrf_eti_spec_decl.hpp.in
Outdated
Show resolved
Hide resolved
|
@lucbv , I've had some good results with co-pilot reviews on my other projects, so I asked for one here. |
|
@jgfouca sure, that's not a bad idea and we anyway have to wait for CI to get back online before moving ahead with this so we have time to fix the issues it detected. |
Signed-off-by: Luc Berger-Vergiat <[email protected]>
Signed-off-by: Luc Berger-Vergiat <[email protected]>
|
Okay, co-pilot pointed some interesting things, I think I got it all squared away. |
Also simplifying some memory space specification, there might still be an issue with a View constructor though... Signed-off-by: Luc Berger-Vergiat <[email protected]>
Taking over PR #2205 rebasing on the current state of develop and re-running tests, will also have a look at the unit-tests and might add more checks.